home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Source / MacTech® Magazine / Volume 07 - 1991 / 07.04 Apr 91 / Code Optimizing / Sources / Mxmpy.f.opt2.a < prev    next >
Encoding:
Text File  |  1990-04-13  |  5.1 KB  |  247 lines  |  [TEXT/MPS ]

  1. ;    Assembler source from Language Systems FORTRAN (Version 2.0 January 23, 1990)
  2. ;    Fri, Apr 13, 1990   22:08
  3. ;    Optimization Level 2.
  4.  
  5.         BLANKS ON
  6.         STRING ASIS
  7.         PRINT OFF
  8.         INCLUDE 'Traps.a'
  9.         INCLUDE 'ToolEqu.a'
  10.         INCLUDE 'QuickEqu.a'
  11.         INCLUDE 'SysEqu.a'
  12.         INCLUDE 'SANEMacs.a'
  13.         PRINT ON
  14.  
  15.  ;  File "Mxmpy.f";  Line          1
  16.         SEG    'Mxmpy'
  17. MXMPY    PROC EXPORT
  18.         LINK    A6,#$FFFFFF20
  19.         MOVEM.L    D5-D7,-(SP)
  20.  ;  File "Mxmpy.f";  Line         17
  21.         BRA        L10002
  22. L10001    EQU    *
  23.         MOVE.L    #$00000001,$FFFFFFAC(A6)
  24.         MOVEA.L    $0010(A6),A0
  25.         MOVE.L    (A0),$FFFFFFB0(A6)
  26.         MOVE.L    (A0),D0
  27.         ADD.L    D0,D0
  28.         MOVE.L    D0,D1
  29.         ASL.L    #2,D0
  30.         ADD.L    D1,D0
  31.         MOVE.L    D0,$FFFFFF64(A6)
  32.         MOVE.L    $FFFFFF64(A6),$FFFFFFB4(A6)
  33.         MOVE.L    #$00000001,$FFFFFFB8(A6)
  34.         MOVEA.L    $000C(A6),A0
  35.         MOVE.L    (A0),$FFFFFFBC(A6)
  36.         MOVE.L    $FFFFFFB4(A6),$FFFFFF40(A6)
  37.         MOVEA.L    $000C(A6),A0
  38.         MOVE.L    $FFFFFF40(A6),D1
  39.         EXG        D0,D1
  40.         MOVE.L    D1,-(SP)
  41.         MOVE.L    (A0),D1
  42.         IMPORT    F_IMUL
  43.         JSR        F_IMUL
  44.         MOVE.L    (SP)+,D1
  45.         EXG        D0,D1
  46.         MOVE.L    D1,$FFFFFF40(A6)
  47.         MOVE.L    $FFFFFF40(A6),$FFFFFFC0(A6)
  48.         MOVE.L    #$00000001,$FFFFFFC4(A6)
  49.         MOVEA.L    $000C(A6),A0
  50.         MOVE.L    (A0),$FFFFFFC8(A6)
  51.         MOVE.L    (A0),D0
  52.         ADD.L    D0,D0
  53.         MOVE.L    D0,D1
  54.         ASL.L    #2,D0
  55.         ADD.L    D1,D0
  56.         MOVE.L    D0,$FFFFFF48(A6)
  57.         MOVE.L    $FFFFFF48(A6),$FFFFFFCC(A6)
  58.         MOVE.L    #$00000001,$FFFFFFD0(A6)
  59.         MOVEA.L    $0008(A6),A0
  60.         MOVE.L    (A0),$FFFFFFD4(A6)
  61.         MOVE.L    $FFFFFFCC(A6),$FFFFFF48(A6)
  62.         MOVEA.L    $0008(A6),A0
  63.         MOVE.L    $FFFFFF48(A6),D1
  64.         EXG        D0,D1
  65.         MOVE.L    D1,-(SP)
  66.         MOVE.L    (A0),D1
  67.         IMPORT    F_IMUL
  68.         JSR        F_IMUL
  69.         MOVE.L    (SP)+,D1
  70.         EXG        D0,D1
  71.         MOVE.L    D1,$FFFFFF48(A6)
  72.         MOVE.L    $FFFFFF48(A6),$FFFFFFD8(A6)
  73.         MOVE.L    #$00000001,$FFFFFFDC(A6)
  74.         MOVEA.L    $0010(A6),A0
  75.         MOVE.L    (A0),$FFFFFFE0(A6)
  76.         MOVE.L    $FFFFFF64(A6),$FFFFFFE4(A6)
  77.         MOVE.L    #$00000001,$FFFFFFE8(A6)
  78.         MOVEA.L    $0008(A6),A0
  79.         MOVE.L    (A0),$FFFFFFEC(A6)
  80.         MOVE.L    $FFFFFFE4(A6),$FFFFFF50(A6)
  81.         MOVEA.L    $0008(A6),A0
  82.         MOVE.L    $FFFFFF50(A6),D1
  83.         EXG        D0,D1
  84.         MOVE.L    D1,-(SP)
  85.         MOVE.L    (A0),D1
  86.         IMPORT    F_IMUL
  87.         JSR        F_IMUL
  88.         MOVE.L    (SP)+,D1
  89.         EXG        D0,D1
  90.         MOVE.L    D1,$FFFFFF50(A6)
  91.         MOVE.L    $FFFFFF50(A6),$FFFFFFF0(A6)
  92.         RTS
  93. L10002    EQU    *
  94.         BSR        L10001
  95.  ;  File "Mxmpy.f";  Line         18
  96.         MOVEQ    #$0001,D1
  97.         SUB.L    $FFFFFFC4(A6),D1
  98.         ADD.L    D1,D1
  99.         MOVE.L    D1,D0
  100.         ASL.L    #2,D1
  101.         ADD.L    D0,D1
  102.         MOVEQ    #$0001,D2
  103.         SUB.L    $FFFFFFD0(A6),D2
  104.         EXG        D0,D2
  105.         MOVE.L    D1,-(SP)
  106.         MOVE.L    $FFFFFFCC(A6),D1
  107.         IMPORT    F_IMUL
  108.         JSR        F_IMUL
  109.         MOVE.L    (SP)+,D1
  110.         EXG        D0,D2
  111.         ADD.L    D1,D2
  112.         MOVE.L    D2,$FFFFFF84(A6)
  113.         MOVEQ    #$0001,D1
  114.         SUB.L    $FFFFFFAC(A6),D1
  115.         ADD.L    D1,D1
  116.         MOVE.L    D1,D0
  117.         ASL.L    #2,D1
  118.         ADD.L    D0,D1
  119.         MOVEQ    #$0001,D2
  120.         SUB.L    $FFFFFFB8(A6),D2
  121.         EXG        D0,D2
  122.         MOVE.L    D1,-(SP)
  123.         MOVE.L    $FFFFFFB4(A6),D1
  124.         IMPORT    F_IMUL
  125.         JSR        F_IMUL
  126.         MOVE.L    (SP)+,D1
  127.         EXG        D0,D2
  128.         ADD.L    D1,D2
  129.         MOVE.L    D2,$FFFFFF80(A6)
  130.         MOVEQ    #$0001,D1
  131.         SUB.L    $FFFFFFDC(A6),D1
  132.         ADD.L    D1,D1
  133.         MOVE.L    D1,D0
  134.         ASL.L    #2,D1
  135.         ADD.L    D0,D1
  136.         MOVEQ    #$0001,D2
  137.         SUB.L    $FFFFFFE8(A6),D2
  138.         EXG        D0,D2
  139.         MOVE.L    D1,-(SP)
  140.         MOVE.L    $FFFFFFE4(A6),D1
  141.         IMPORT    F_IMUL
  142.         JSR        F_IMUL
  143.         MOVE.L    (SP)+,D1
  144.         EXG        D0,D2
  145.         ADD.L    D1,D2
  146.         MOVE.L    D2,$FFFFFF7C(A6)
  147.         MOVE.L    #$00000001,$FFFFFFA0(A6)
  148.         MOVEA.L    $0010(A6),A1
  149.         MOVE.L    (A1),D5
  150.         BLE        L10004
  151. L10003    EQU    *
  152.  ;  File "Mxmpy.f";  Line         19
  153.         MOVE.L    $FFFFFF7C(A6),$FFFFFF78(A6)
  154.         MOVE.L    $FFFFFF80(A6),$FFFFFF74(A6)
  155.         MOVE.L    $FFFFFF84(A6),$FFFFFF70(A6)
  156.         MOVE.L    #$00000001,$FFFFFFA4(A6)
  157.         MOVEA.L    $0008(A6),A1
  158.         MOVE.L    (A1),D6
  159.         BLE        L10006
  160. L10005    EQU    *
  161.  ;  File "Mxmpy.f";  Line         20
  162.         LEA        $FFFFFFF4(A6),A1
  163.         CLR.L    (A1)+
  164.         CLR.L    (A1)+
  165.         CLR.W    (A1)+
  166.  ;  File "Mxmpy.f";  Line         21
  167.         MOVE.L    $FFFFFF70(A6),$FFFFFF6C(A6)
  168.         MOVE.L    $FFFFFF74(A6),$FFFFFF68(A6)
  169.         MOVE.L    #$00000001,$FFFFFFA8(A6)
  170.         MOVEA.L    $000C(A6),A1
  171.         MOVE.L    (A1),D7
  172.         BLE        L10008
  173. L10007    EQU    *
  174.  ;  File "Mxmpy.f";  Line         22
  175.         MOVE.L    $FFFFFF68(A6),$FFFFFF3C(A6)
  176.         MOVE.L    $FFFFFF6C(A6),$FFFFFF40(A6)
  177.         MOVEA.L    $0018(A6),A1
  178.         ADDA.L    $FFFFFF40(A6),A1
  179.         MOVE.L    A1,-(SP)
  180.         MOVEA.L    $001C(A6),A0
  181.         ADDA.L    $FFFFFF3C(A6),A0
  182.         LEA        $FFFFFF54(A6),A1
  183.         MOVE.L    A1,-(SP)
  184.         MOVE.L    (A0)+,(A1)+
  185.         MOVE.L    (A0)+,(A1)+
  186.         MOVE.W    (A0)+,(A1)+
  187.         MOVE.W    #FOMUL,-(SP)
  188.         _FP68K
  189.         PEA        $FFFFFF54(A6)
  190.         PEA        $FFFFFFF4(A6)
  191.         MOVE.W    #FOADD,-(SP)
  192.         _FP68K
  193.  ;  File "Mxmpy.f";  Line         23
  194.         MOVE.L    $FFFFFFB4(A6),D1
  195.         ADD.L    D1,$FFFFFF68(A6)
  196.         MOVEQ    #$000A,D1
  197.         ADD.L    D1,$FFFFFF6C(A6)
  198.         ADDQ.L    #1,$FFFFFFA8(A6)
  199.         SUBQ.L    #1,D7
  200.         BGT.S    L10007
  201. L10008    EQU    *
  202.  ;  File "Mxmpy.f";  Line         24
  203.         MOVE.L    $FFFFFF78(A6),$FFFFFF60(A6)
  204.         LEA        $FFFFFFF4(A6),A0
  205.         MOVEA.L    $0014(A6),A1
  206.         ADDA.L    $FFFFFF60(A6),A1
  207.         MOVE.L    (A0)+,(A1)+
  208.         MOVE.L    (A0)+,(A1)+
  209.         MOVE.W    (A0)+,(A1)+
  210.  ;  File "Mxmpy.f";  Line         25
  211.         MOVE.L    $FFFFFFCC(A6),D1
  212.         ADD.L    D1,$FFFFFF70(A6)
  213.         MOVE.L    $FFFFFFE4(A6),D1
  214.         ADD.L    D1,$FFFFFF78(A6)
  215.         ADDQ.L    #1,$FFFFFFA4(A6)
  216.         SUBQ.L    #1,D6
  217.         BGT        L10005
  218. L10006    EQU    *
  219.  ;  File "Mxmpy.f";  Line         26
  220.         MOVEQ    #$000A,D1
  221.         ADD.L    D1,$FFFFFF7C(A6)
  222.         MOVEQ    #$000A,D1
  223.         ADD.L    D1,$FFFFFF80(A6)
  224.         ADDQ.L    #1,$FFFFFFA0(A6)
  225.         SUBQ.L    #1,D5
  226.         BGT        L10003
  227. L10004    EQU    *
  228.  ;  File "Mxmpy.f";  Line         27
  229.         LEA        $0020(A6),A1
  230.         MOVEA.L    $0004(A6),A0
  231.         MOVEM.L    (SP)+,D5-D7
  232.         UNLK    A6
  233.         MOVEA.L A1,A7
  234.         JMP        (A0)
  235.  ;  File "Mxmpy.f";  Line         27
  236. PROCSTR    EQU    *
  237.         DC.W    $FFFF8006
  238.         DC.B    'MXMPY '
  239.         DC.W    $0000
  240. EXTDCONST    EQU        *
  241.         DC.W    $0000,$0000,$0000,$0000,$0000
  242.  
  243.         ENDPROC
  244.  
  245.  
  246.         END
  247.